home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 79 / maccd 79.iso / multimedial / GL Tron / Source / gltron / model.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-07-20  |  1.1 KB  |  47 lines  |  [TEXT/CWIE]

  1. #ifndef MODEL_H
  2. #define MODEL_H
  3.  
  4. #define MODEL_USE_MATERIAL 1
  5. #define MODEL_DRAW_BBOX    2
  6.  
  7. /* warning: changing this will break drawModel() */
  8. #define MODEL_FACESIZE 4
  9.  
  10. /* only for GLtron: define polycount */
  11. #define POLY_COUNT
  12.  
  13. typedef struct {
  14.   float ambient[4];
  15.   float diffuse[4];
  16.   float specular[4];
  17.   char *name;
  18. } Material;
  19.  
  20. typedef struct {
  21.   int nFaces;
  22.   int *facesizes;
  23.   float *vertices;
  24.   float *normals;
  25. } MeshPart;
  26.  
  27. typedef struct {
  28.   int nFaces;
  29.   int nMaterials;
  30.   Material *materials;
  31.   MeshPart *meshparts;
  32.   float bbox[3];
  33. } Mesh;
  34.  
  35. extern char* getFullPath(char* filename);
  36. extern int loadMaterials(char* filename, Material **materials);
  37. extern Mesh* loadModel(const char *filename, float size, int flags);
  38. extern void unloadModel(Mesh *mesh);
  39. extern void drawModel(Mesh *mesh, int mode, int flag);
  40. extern void drawExplosion(Mesh *mesh, float radius, int mode, int flag);
  41. extern void setMaterialAlphas(Mesh *mesh, float alpha);
  42. extern void setMaterialAmbient(Mesh *mesh, int material, float* color);
  43. extern void setMaterialDiffuse(Mesh *mesh, int material, float* color);
  44. extern void setMaterialSpecular(Mesh *mesh, int material, float* color);
  45.  
  46. #endif
  47.